popover: Do not hide the popover if the focus widget is just unset
authorCarlos Garnacho <carlosg@gnome.org>
Mon, 19 May 2014 11:41:34 +0000 (13:41 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Mon, 19 May 2014 11:49:03 +0000 (13:49 +0200)
The focus widget might be unset, just to be set again on a widget inside
the popover. Have the popover wait till the focus is actually moved outside
before dismissing.

gtk/gtkpopover.c

index 721062284e12386445b9e81f4c60689184f773ee..8e6059eaa759bfbabd79f97e45a6fc799e403838 100644 (file)
@@ -341,9 +341,9 @@ window_set_focus (GtkWindow  *window,
 {
   GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover);
 
-  if (priv->modal &&
+  if (priv->modal && widget &&
       gtk_widget_is_drawable (GTK_WIDGET (popover)) &&
-      (!widget || !gtk_widget_is_ancestor (widget, GTK_WIDGET (popover))))
+      !gtk_widget_is_ancestor (widget, GTK_WIDGET (popover)))
     gtk_widget_hide (GTK_WIDGET (popover));
 }